\documentclass[12pt, a4paper]{article}
\usepackage{geometry}
\usepackage{tikz}
\geometry{
	a4paper,
	left=12.7 mm,
	right=12.7 mm,
	top=12.7 mm,
	bottom=12.7 mm,
}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{physics}
\graphicspath{ {./} }
\usepackage{ctex}

\newcommand{\bvec}[1]{\ensuremath{\mathbf{#1}}}
\newcommand{\formula}[1]{\text{式} \ref{#1} }

\begin{document}
	\section{数值微分初步}
	
	\begin{figure}[h]
		\centering % 使图形居中
		\begin{tikzpicture}[scale=1.0]
			
			% 绘制坐标轴
			\draw[->] (0,0) -- (8,0) node[right] {$t$}; % t轴范围扩大到8
			\draw[->] (0,0) -- (0,4) node[above] {$y$};
			
			% 标注时间点
			\node[below] at (2,0) {$t_0$}; % 1 -> 2
			\node[below] at (3,0) {$t_1$}; % 1.5 -> 3
			\node[below] at (4,0) {$t_2$}; % 2 -> 4
			\node[below] at (5,0) {$t_3$}; % 2.5 -> 5
			\node[below] at (6,0) {$t_4$}; % 3 -> 6
			\filldraw (2,0) circle (2pt);
			\filldraw (3,0) circle (2pt);
			\filldraw (4,0) circle (2pt);
			\filldraw (5,0) circle (2pt);
			\filldraw (6,0) circle (2pt);
			
			% 标注y值
			\node[left] at (2,0.2) {$y_0$};
			\node[left] at (3,0.45) {$y_1$};
			\node[left] at (4,0.8) {$y_2$};
			\node[left] at (5,1.25) {$y_3$};
			\node[left] at (6,1.8) {$y_4$};
			\filldraw (2,0.2) circle (2pt);
			\filldraw (3,0.45) circle (2pt);
			\filldraw (4,0.8) circle (2pt);
			\filldraw (5,1.25) circle (2pt);
			\filldraw (6,1.8) circle (2pt);
			
			\draw[dashed] (2,0) -- (2,0.2);
			\draw[dashed] (3,0) -- (3,0.45);
			\draw[dashed] (4,0) -- (4,0.8);
			\draw[dashed] (5,0) -- (5,1.25);
			\draw[dashed] (6,0) -- (6,1.8);
			
			% 绘制曲线
			\draw[dashed] (0,0) -- (1,0.05) -- (2,0.2)--(3,0.45)--(4,0.8)--(5,1.25)--(6,1.8)--(7,2.45);
		\end{tikzpicture}
		\caption{示意图：$y=y(t)$及其离散形式} % 设置标题
	\end{figure}
	
	\footnote{本笔记使用AI辅助。}
	假设我们有一个函数$y=y(t)$，我们要求他的导数$\dv{y}{t}$。
	在数学上这很容易：
	$$
	\dv{y}{t} = \lim_{\Delta t \to 0} \frac{y(t+\Delta t) - y(t)}{\Delta t}
	$$
	但如果我们只知道$y$的离散形式，即若干个点$t_0,t_1,t_2...$处的$y_0,y_1,y_2,...$（假定$t$等间隔），那么我们该如何找到$y$的导数？
	这就需要使用数值微分的工具，数值微分使用$y$的离散形式来表述$y$的导数。
	
	\subsection{比较通俗的理解}
	比较通俗的理解是，直接运用导数的原始含义：
	\begin{itemize}
		\item 一阶导：$\dv{y}{t} = \frac{y(t+\Delta t) - y(t)}{\Delta t}$，或者$\dv{y}{t} = \frac{y(t+\Delta t) - y(t-\Delta t)}{2 \Delta t}$
		\item 二阶导：
		$
		\dv[2]{y}{t} = \dv{y'}{t} = \frac{\frac{y(t+\Delta t) - y(t)}{\Delta t} - \frac{y(t) - y(t-\Delta t)}{\Delta t}}{\Delta t}
		= \frac{y(t +\Delta t) - 2y(t) + y(t - \Delta t)}{(\Delta t )^2 } 
		$
	\end{itemize}
	
	\subsection{比较严谨的理解}
	比较严谨的理解需要使用Taylor展开的工具。观察$y(t)$在$t_0$附近的Taylor展开（展开至二阶）：
	\begin{equation}
		\begin{aligned}
			y(t_0 - 2\Delta t) &\approx y(t_0) - \dv{y}{t}\bigg|_{t=t_0} ~ (2\Delta t) + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} ~ (2\Delta t)^2 \\
			y(t_0 - \Delta t)  &\approx  y(t_0) - \dv{y}{t}\bigg|_{t=t_0} ~ (\Delta t)  + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} ~ (\Delta t)^2    \\
			y(t_0) &= y(t_0) \\
			y(t_0 + \Delta t)  &\approx y(t_0) + \dv{y}{t}\bigg|_{t=t_0} ~ (\Delta t)  + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} ~ (\Delta t)^2     \\
			y(t_0 + 2\Delta t) &\approx y(t_0) + \dv{y}{t}\bigg|_{t=t_0} ~ (2\Delta t) + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} ~ (2\Delta t)^2 
		\end{aligned}
	\end{equation}
	其中$y(t_0),y(t_0 +\Delta t)$等已知而$\dv{y}{t}$等未知，只需配凑这些等式就可以得到相应的导数，相当于求解一组线性方程组。
	例如：
	
	\subsubsection*{一阶导数$\dv{y}{t}$}
	
	\begin{itemize}
		\item 单侧差分（一阶精度）：只取$y(t_0 +\Delta t)$与$y(t_0)$，我们发现可以如此配凑$\dv{y}{t}$（省去二阶导数项）：
		\begin{equation}
			y(t_0 +\Delta t) - y(t_0) = \dv{y}{t} ~ (\Delta t) + \frac{1}{2} \dv[2]{y}{t} ~ (\Delta t)^2
			\Rightarrow
			\dv{y}{t}  = \frac{y(t_0 +\Delta t) - y(t_0) }{\Delta t}
		\end{equation}
		这种方法可能是数值微分的最简单形式，但显而易见的缺点是其忽略了二阶导数项，因此仅具有一阶精度。
		\item 中心差分（二阶精度）：取$y(t_0 - \Delta t)$与$y(t_0 +\Delta t)$并消去二阶导数项，我们发现还可以如此配凑$\dv{y}{t}$：
		\begin{equation}
			y(t_0 + \Delta t) - y(t_0 - \Delta t) = 2 \dv{y}{t} ~ (\Delta t)
			\Rightarrow
			\dv{y}{t}  = \frac{y(t_0 +\Delta t) - y(t_0 - \Delta t)}{2 \Delta t}
		\end{equation}
		这种格式具有二阶精度。
		\item 单侧差分（二阶精度）：取$y(t_0), y(t_0 + \Delta t), y(t_0 +2\Delta t)$并消去二阶导数项，我们也可以配凑$\dv{y}{t}$:
		\begin{equation}
			y(t_0 + 2\Delta t) - 4y(t_0 + \Delta t) = - 3y(t_0) -2 \dv{y}{t} \Delta t
			\Rightarrow
			\dv{y}{t} = \frac{ - 3y(t_0)+ 4y(t_0 + \Delta t) -y(t_0 + 2\Delta t)}{2 \Delta t}
		\end{equation}
		这种格式也具有二阶精度，但只使用了$y$“单侧”的函数值（类比于高数中的“单侧导数”），常用于边界的情况。
	\end{itemize}
	
	\subsubsection*{二阶导数$\dv[2]{y}{t}$}
	\begin{itemize}
		
		\item 中心差分（二阶精度）：取$y(t_0 - \Delta t)$，$y(t_0)$与$y(t_0 +\Delta t)$并消去一阶导数项，我们还可以配凑$\dv[2]{y}{t}$：
		\begin{equation}
			\begin{aligned}
				\dv[2]{y}{t}  = \frac{y(t_0 +\Delta t) - 2y(t_0) + y(t_0 - \Delta t)}{(\Delta t )^2 } \\
			\end{aligned}
		\end{equation}
%		\item 单侧差分：同样地，取$y(t_0)$，$y(t_0 +\Delta t)$，$y(t_0 + 2 \Delta t)$和$y(t_0 + 3 \Delta t)$并消去一、三阶导数项，我们也可以得到二阶导数的单侧形式
%		\begin{equation}
%			\dv[2]{y}{t}  = \frac{2y(t_0) - 5y(t_0+\Delta t) + 4y(t_0 +2 \Delta t) - y(t_0 +3 \Delta t)}{(\Delta t)^2}
%		\end{equation}
%		这也是二阶导的离散形式。
	\end{itemize}
	
	\newpage
	
	\subsection{关于配凑的提示}
	原则上这种思路可配凑更高阶或更高精度的导数，以下简要介绍这种思路更为系统的做法。
	以上述二阶中心差分为例，首先回顾一下 Taylor 展开（以二阶为例）的形式：
	$$
	\begin{aligned}
		y(t_0 + \Delta t) &\approx y(t_0) + \dv{y}{t}\bigg|_{t=t_0} (\Delta t) + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} (\Delta t)^2, \\
		y(t_0) &= y(t_0), \\
		y(t_0 - \Delta t) &\approx y(t_0) - \dv{y}{t}\bigg|_{t=t_0} (\Delta t) + \frac{1}{2} \dv[2]{y}{t}\bigg|_{t=t_0} (\Delta t)^2.
	\end{aligned}
	$$
	利用 $y(t_0 + \Delta t)$、$y(t_0)$ 和 $y(t_0 - \Delta t)$ 的 Taylor 展开式构造 $\dv[2]{y}{t}$ 的表达式，相当于求解如下方程：
	$$
	\dv[2]{y}{t} = a y(t_0 + \Delta t) + b y(t_0) + c y(t_0 - \Delta t),
	$$
	其中需要确定系数 $a$、$b$ 和 $c$。
	为了简化表示，我们将上述 Taylor 展开式的系数提取为向量形式：
	$$
	y(t_0 + \Delta t) \sim \begin{pmatrix} 1 \\ 1 \\ \frac{1}{2} \end{pmatrix}, \qquad 
	y(t_0) \sim \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}, \qquad
	y(t_0 - \Delta t) \sim \begin{pmatrix} 1 \\ -1 \\ \frac{1}{2} \end{pmatrix}.
	$$
	其中，每个分量分别对应 $y(t_0)$、$\dv{y}{t}\big|_{t=t_0}$ 和 $\dv[2]{y}{t}\big|_{t=t_0}$ 的系数。
	于是，上述方程化为一个线性方程组（注意矩阵的构造顺序）：
	$$
	\begin{pmatrix}
		1 & 1 & 1 \\
		1 & 0 & -1 \\
		\frac{1}{2} & 0 & \frac{1}{2}
	\end{pmatrix}
	\begin{pmatrix}
		a \\ b \\ c
	\end{pmatrix}
	=
	\begin{pmatrix}
		0 \\ 0 \\ 1
	\end{pmatrix}.
	$$
	求解该线性方程组，可得：
	$$
	\begin{pmatrix}
		a \\ b \\ c
	\end{pmatrix}
	=
	\begin{pmatrix}
		1 \\ -2 \\ 1
	\end{pmatrix}.
	$$
	因此，二阶导数的中心差分公式为：
	$$
	\dv[2]{y}{t} \approx \frac{y(t_0 + \Delta t) - 2y(t_0) + y(t_0 - \Delta t)}{(\Delta t)^2}.
	$$	
	为了简明起见，推导过程中省略了 $(\Delta t)$ 的显式表示。实际计算中应在最终公式中将其还原。

\end{document}